#ifndef SAFEAREASTACKNODE_H
#define SAFEAREASTACKNODE_H
#pragma once

#include "RNOH/arkui/ArkUINode.h"

namespace rnoh {
class SafeAreaStackNodeDelegate {
public:
    virtual ~SafeAreaStackNodeDelegate() = default;
    virtual void onClick() {};
    virtual void onAppear() {};
};

class SafeAreaStackNode : public ArkUINode {
protected:
    SafeAreaStackNodeDelegate* m_stackNodeDelegate;
public:
    SafeAreaStackNode();
    ~SafeAreaStackNode() override;
    void insertChild(ArkUINode& child, std::size_t index);
    void removeChild(ArkUINode& child);
    void onNodeEvent(ArkUI_NodeEventType eventType, EventArgs& eventArgs) override;
    void onClick();
    void setStackNodeDelegate(SafeAreaStackNodeDelegate* safeAreaStackNodeDelegate);
    SafeAreaStackNode& setAlign(int32_t align);
};
}
#endif